python的decimal数值 decimal.decimal python |
您所在的位置:网站首页 › python3 import用法 › python的decimal数值 decimal.decimal python |
python的decimal数值 decimal.decimal python
转载
mob6454cc6d1c0b 2023-06-27 00:51:01 文章标签 python的decimal数值 python decimal 固定精度浮点类型 python3 文章分类 Python 后端开发 在Django中遇到商品金额时只知道使用decimalfiled,但是并不是特别了解底层的python decimal模块,偶然看书学习到这块,做个记录跟博友们一起分享。 decimal 模块是python内置模块, 不需要安装,直接导入即可 import decimal简单使用 d = decimal.Decimal('3.1415926')在python3环境中,这里最好传入一个字符串,如果传入了一个浮点型,decimal对象的浮点精度得不到保证。 想要控制浮点精度时,可以通过 decimal.getcontext().prec = 3执行完这条语句后,所有非直接通过直创建得来的decimal对象,比如通过计算得来的decimal对象,输出时的精度都将以这条赋值的精度为准,本质是设置了全局精度。 也可以使用小数上下文管理器,重新 设置一个临时小数精度。在语句退出后,精度重新设为初始值。 执行代码 d = decimal.Decimal(3) a = decimal.Decimal(3.1415926) print(d) # 3 print(a) # 3.14159260000000006840537025709636509418487548828125 print(d+a+a) # 9.283185200000000136810740514 #设置全局精度 decimal.getcontext().prec = 2 d = decimal.Decimal(3) a = decimal.Decimal('3.1415926') print(d) # 3 print(a) # 3.1415926 print(d+a+a) # 9.28 #小数上下文管理器 with decimal.localcontext() as ctx": ctx.prec = 3 print(d+a+a) # 9.283 #管理器语句退出后,精度恢复 print(a+a) # 6.28 print(d+a) # 6.14本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。 赞 收藏 评论 分享 举报 上一篇:java使用solr教程 so调用java方法 下一篇:android 字符串大小写转换工具 android字符串赋值 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |